package com.qqtech.qquan.push.service;

import java.util.Set;

import com.qqtech.core.frame.model.Result;
import com.qqtech.qquan.push.model.PushLogVo;

public interface PushJgService {

	/**
	 * 发送推送
	 * 
	 * @param pushLogVo
	 *            推送通知或自定义信息封装
	 * @return Result.put("pushResult",PushResult)
	 */
	Result sendPush(PushLogVo pushLogVo);

	/**
	 * 清除设备的标签(根据设备注册ID)
	 * 
	 * @param registrationId
	 *            设备注册ID
	 */
	void clearDeviceTag(String registrationId);

	/**
	 * 清除设备的别名(根据设备注册ID)
	 * 
	 * @param registrationId
	 *            设备注册ID
	 */
	void clearDeviceAlias(String registrationId);

	/**
	 * 更新设备的别名或标签(根据设备注册ID)
	 * 
	 * @param registrationId
	 *            设备注册ID
	 * @param alias
	 *            修改后的别名
	 * @param tagsToAdd
	 *            需要增加的标签
	 * @param tagsToRemove
	 *            需要剔除的标签
	 */
	void updateDeviceTagAlias(String registrationId, String alias, Set<String> tagsToAdd, Set<String> tagsToRemove);
}